package distribuicaoDeProfessores;

/**
 *
 * @author Jaime
 * O professor possui um número de identificação (id),
 * nome (nome) e 3 preferencias p1, p2 e p3, respectivamente
 * da mais importante (p1) para a menos importante (p2)
 * 
 * As preferencias são assoicadas na criação do objeto.
 * Existem um método para visualiar as disciplinas alocadas as 
 * preferencias, outro para retornar se uma disciplina esta entre as de preferencia do 
 * professor e se encontrada indicar seu nível.
 */
public final class Professor implements java.io.Serializable {
    private int id;
    private String nome;
    private Preferencia p1, p2, p3;
    private int quantidadeDeDisciplinas, quantp1, quantp2, quantp3;
    
    Professor(String nome, int id, Disciplina p11, Disciplina p12, Disciplina p13, Disciplina p21, Disciplina p22, Disciplina p23, Disciplina p31, Disciplina p32, Disciplina p33){
        p1 = new Preferencia(1, p11, p12, p13);
        p2 = new Preferencia(2, p21, p22, p23);
        p3 = new Preferencia(3, p31, p32, p33);
        this.nome = nome;
        this.id = id;
        quantidadeDeDisciplinas=quantp1=quantp2=quantp3= 0;
    }
    
	public String getNome(){
        return nome;
    }
    public int getId(){
        return id;
    }
    public String verPreferencias(){
        return p1 + "\n" + p2 + "\n" + p3 + "\n";
    }
    
    public int verificar(Disciplina x){
         if(p1.pertence(x)) return 1;
         else if (p2.pertence(x)) return 2;
         else if (p3.pertence(x))return 3;
         else return 0;
    }
    //Configura +1 para a quantidade de disciplinas alocadas ao
    //professor.
    public void addQuantDisciplina(){
        quantidadeDeDisciplinas++;
    }
    //Configura -1 para a quantidade de disciplinas alocadas ao
    //professor.
    public void retQuantDisciplina(){
        quantidadeDeDisciplinas--;
    }
    public int getQuantDisciplina(){
        return quantidadeDeDisciplinas;
    }
    public String toString(){
        return nome +"\n"+ id+ "\n" + p1 + p2 + p3;
    }

    public Preferencia getP1() {
        return p1;
    }

    public void setP1(Preferencia p1) {
        this.p1 = p1;
    }

    public Preferencia getP3() {
        return p3;
    }

    public Preferencia getP2() {
        return p2;
    }

    public void setP2(Preferencia p2) {
        this.p2 = p2;
    }

    public int getQuantidadeDeDisciplinas() {
        return quantidadeDeDisciplinas;
    }

    public void setQuantidadeDeDisciplinas(int quantidadeDeDisciplinas) {
        this.quantidadeDeDisciplinas = quantidadeDeDisciplinas;
    }

    public void setP3(Preferencia p3) {
        this.p3 = p3;
    }

    public int getQuantp1() {
        return quantp1;
    }

    public void setQuantp1(int quantp1) {
        this.quantp1 = quantp1;
    }

    public int getQuantp2() {
        return quantp2;
    }

    public void setQuantp2(int quantp2) {
        this.quantp2 = quantp2;
    }

    public int getQuantp3() {
        return quantp3;
    }

    public void setQuantp3(int quantp3) {
        this.quantp3 = quantp3;
    }
    
}
